// Action 本质上是 JavaScript 普通对象。我们约定，action 内必须使用一个字符串类型的 type 字段来表示将要执行的动作。多数情况下，type 会被定义成字符串常量。当应用规模越来越大时，建议使用单独的模块或文件来存放 action。
// 单独定义ActionTypes文件
import * as types from '../constants/ActionTypes'


// action函数
/**
 * Action 本质上是 JavaScript 普通对象。
 * 我们约定，action 内必须使用一个字符串类型的 type 字段来表示将要执行的动作。多数情况下，type 会被定义成字符串常量。
 * 当应用规模越来越大时，建议使用单独的模块或文件来存放 action。
 */

export function addTodo(text) {
	return {
		type: types.ADD_TODO,
		text
	}
}

export function deleteTodo(id) {
	return {
		type: types.DELETE_TODO,
		id
	}
}

export function editTodo(id, text) {
	return {
		type: types.EDIT_TODO,
		id,
		text
	}
}

export function completeTodo(id) {
	return {
		type: types.COMPLETE_TODO,
		id
	}
}

export function completeAll() {
	return {
		type: types.COMPLETE_ALL
	}
}

export function clearCompleted() {
	return {
		type: types.CLEAR_COMPLETED
	}
}